Obtaining Dynamic Program Information with Binary Instrumentation

نویسنده

  • Michael Laurenzano
چکیده

Dynamic information about a program has many uses, such as aiding the programmer in debugging or optimizing his code, helping make code more secure, or helping hardware and systems designers make organizational or tradeoff decisions. Program information is available through a variety of approaches, including visual inspection of the code or its output, compiler output, hardware counters, debuggers, and program instrumentation through a number of techniques. This work contains a survey of several approaches for obtaining program information and uses the findings to argue that Binary Instrumentation allows efficient access to information that is not available from any other technique. This paper examines a series of binary instrumentation toolkits that are able to instrument a static executable or a running executable, through code patching and Just-In-Time (JIT) compilation. Here is also discussed the various advantages of these tools over one another in terms of efficiency, transparency, and portability.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Redundancy Suppression In Time-Aware Dynamic Binary Instrumentation

Software tracing techniques are well-established and used by instrumentation tools to extract run-time information for program analysis and debugging. Dynamic binary instrumentation as one tool instruments program binaries to extract information. Unfortunately, instrumentation causes perturbation that is unacceptable for time-sensitive applications. Consequently we developed DIME*, a tool for d...

متن کامل

HP Caliper : A Framework for Performance Analysis

You perform statistical sampling by taking periodic snapshots of a program’s state. Statistical sampling is nonintrusive—unlike binary instrumentation, statistical sampling doesn’t add any lines of code to the application being tested—but the computing community generally regards this technique as imprecise. It imposes low overhead on a program’s runtime performance and can be used for time-cri...

متن کامل

FIST: A Framework for Instrumentation in Software Dynamic Translators

Software dynamic translators (SDT) typically monitor, profile, and affect the execution of a program. Such systems have been used to build many useful applications, including dynamic code optimizers for binary machine code and Java bytecode, software security checkers, binary translators, code profilers and program introspection tools. While all of these systems use program instrumentation, the...

متن کامل

Dynamic Instrumentation of C++ Applications on IA-64

Dynamic instrumentation is the process of modifying a program’s binary instructions on the fly while the program executes. This technique is used in a wide variety of tools for performance analysis, profiling, coverage analysis, correctness checking, and testing. Instrumenting applications generated from C++ sources reveals new complications, mainly caused by the C++ exception handling mechanis...

متن کامل

Generating Dynamic Program Analysis Tools

Sophisticated instrumentation-based systems exist for building dynamic analysis tools but to use these systems a developer must write the instrumentation and analysis code by hand. This paper describes how analysis tools can be generated automatically by specifying analysis algorithms using attribute grammars based on the static and dynamic structure of the program being analysed. Using methods...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007